#include<stdio.h>
#include<string.h>
#include"stu.h"

void print_menu(void);
static int cmp_name(const void *data, const void *key);
static int cmp_id(const void *data, const void *key);
int main(void){
	int swit = 5; //选择功能
	struct student s1;//存储增删学生信息
	struct student *stu;//存储学生汇总信息
	int num = 0;//学生数

	int type1 = 0;//删除学生信息
	do{
		print_menu();
		printf("请输入要选择的功能：");
		scanf("%d", &swit);

		switch(swit){
			case 1:
				printf("请输入八位学号：");
				scanf("%d", &s1.id);
				getchar();
				//printf("请输入姓名：");
				//gets(s1.name);
				s1.name = "坤坤不打篮球！";
				//getchar();
				printf("请输入成绩：");
				scanf("%d", &s1.score);
				getchar();
				insert_student(&stu, &num, s1);
				break;
			case 2:
				printf("请输入你选择的删除方式（1：按学号 2：按姓名 ）：");
				scanf("%d", &type1);
				if(type1 == 1){
					printf("请输入学号（加学分哦）：");
					scanf("%d", &s1.id);
					getchar();
					delete_student(&stu, &num, &s1.id, cmp_id);
				}else if(type1 == 2){
					printf("请输入姓名（赠北京单程票）：");
					puts(s1.name);
					getchar();
					delete_student(&stu, &num, &s1.name, cmp_name);
				}else{
					printf("哎呦，你干嘛！ji~\n");
				}
				break;
			case 3:
				show_students(stu, num);
				break;
			default:
				printf("哔哩哔哩kangcraft\n");
				break;
		}
		sleep(2);
		printf("\033[2J\033[H");
    	fflush(stdout);  	
	}while(swit != 0);

	return 0;
}

void print_menu(void){
	printf("	欢迎使用学生管理\n");
	printf("1.增加学生信息\n");
	printf("2.删除学生信息\n");
	printf("3.学生信息展示\n");
	printf("输入0退出\n\n");
}

static int cmp_name(const void *data, const void *key)
{
	const struct student *d = (const struct student *)data;
	char *const *k = (char *const*)key;

	return strcmp(d->name, *k);
}

static int cmp_id(const void *data, const void *key)
{
	const struct student *d = (const struct student *)data;
	const int *k = (const int *)key;

	return d->id - *k;
}
